dnd: Make dest side safe against destroy
authorMatthias Clasen <mclasen@redhat.com>
Fri, 30 Jan 2015 04:45:28 +0000 (23:45 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 30 Jan 2015 05:05:33 +0000 (00:05 -0500)
Use a weak pointer to clean up when the current drag destination
gets destroyed.

gtk/gtkdnd.c

index 90e53bfd789859ae7f44b88af9c9f07cf4d0ebf6..8ee832f07cc367a5f68e899ebd7325ec483feaf0 100644 (file)
@@ -1926,6 +1926,7 @@ gtk_drag_find_widget (GtkWidget           *widget,
                 }
 
               info->widget = widget;
+              g_object_add_weak_pointer (G_OBJECT (widget), (gpointer *) &info->widget);
             }
         }
 
@@ -3577,7 +3578,6 @@ _gtk_drag_source_handle_event (GtkWidget *widget,
     case GDK_DRAG_STATUS:
       {
         GdkCursor *cursor;
-
         if (info->proxy_dest)
           {
             if (!event->dnd.send_event)